1. Technical Field
The present invention relates in general to computer-controlled data storage systems and in particular to management of the selection of a particular device within a data storage subsystem. Still more particularly, the present invention relates to a method and system for automated data storage system space allocation within a data processing system utilizing a set of prioritized data set parameters.
2. Description of the Related Art
Initially, computer systems utilized a job control language (JCL) which required the computer user to specify many parameters of program execution, including specifications for peripheral data storage. Thus, each time the peripheral data storage was changed, a corresponding change was required in the JCL statements for the programs to be executed. One example of JCL control of a data processor is shown in U.S. Pat. No. 4,104,718, issued to Pobulan et al. This express interaction between the operation of a peripheral data storage system and user application programs represents an increasingly difficult aspect of computer programs due to the immensity of storage capacity which is available in modern information processing systems.
It would be desirable to allow a user or application programmer to issue specifications, preferably implicitly, for program execution and data storage requirements which are at a relatively high or "logical" level. The term "logical" as utilized herein refers to the specifications for desired program execution, particularly for peripheral data storage. It would also be desirable that all allocation and controls for peripheral data storage be removed from direct intervention by the application programmer. One example of an application of the "logical" level control of storage devices is illustrated in U.S. Pat. No. 4,403,288, issued to Christian et al., wherein one physical device was addressable as four separate logical devices.
The proliferation of direct access storage devices (DASD) within peripheral data storage subsystems has resulted in a centralized DASD storage space allocation program called "DADSM" (Direct Access Device Space Management). However, the application programmer still had to request space in terms of device parameters and types. An example of this technology may be seen in "Asynchronous Allocation Requests" Duvall et al., IBM Technical Disclosure Bulletin, Volume 235, No. 8, January 1983, pp. 4148-4150.
A virtual data storage system which employs a memory control processor which is external to the host processor which divides user-defined data sets into blocks of a size convenient for storage in peripheral data storage devices is illustrated in U.S. Pat. No. 4,467,421, issued to White. That system utilizes a memory processor to assign these blocks to storage locations on peripheral data storage devices. The memory processor intercepts the device oriented input/output commands from the host processor and adjusts operation of the peripheral data storage system to make it more efficient. This system still requires the application programmer to utilize JCL statements that are device dependent, even if an external memory processor interprets the device dependencies differently than intended by the application programming. While this arrangement may ease the affects of changing device types and the like, it still burdens the application programmer device parameter considerations.
U.S. Pat. No. 4,638,425, issued to Hartung, shows a cached direct access storage device (DASD) subsystem in which the application programmer may insert a storage parameter indication of whether certain data records may be stored primarily within volatile peripheral storage, or primarily retentively stored within direct access storage devices within the peripheral system. When stored primarily within cache, performance is enhanced; however, the application program is responsible for any lost data due to power problems or equipment failures. While the use indication provided within this system appears to operate on a relatively high "logical" level, it may be seen that the application programmer still is required to understand important operational characteristics of the peripheral data storage system.
U.S. Pat. No. 4,607,346, issued to Hill, teaches an implicit control of a peripheral DASD based upon the user or application programmer specifying "access densities" for a given program. Based upon such specified access densities, the data to be stored is directed to different portions of a DASD. From this description it may be seen that the application programmer must still be involved with the device parameters; however, the device parameter designations are complicated with the desired access parameters of the application program.
U.S. Pat. No. 4,528,624, issued to Kamionka et al., teaches the selection of peripheral devices for allocations prepatory to peripheral data storage based upon maximum free storage space within each device. This selection is independent of the actual storage capacity of the various devices. This is a simple but relatively effective selection process which may be machine executed after the application programmer has completed the device related JCL statement; i.e., the machine operations for data space allocations do not alleviate all of the interactions between the application programmer and device characteristics.
More recently, U.S. Pat. No. 5,018,060, issued to Gelb et al., teaches a technique whereby data storage space may be allocated within peripheral data storage devices utilizing implied allocation based upon user specified parameters. A plurality of data classes, storage classes and management classes are specified which each define predetermined characteristics of diverse units of data, predetermined sets of storage performance and availability requirements and life cycle attributes for units of data. A plurality of storage groups which each define diverse predetermined performance device and management characteristics within the data storage subsystem are also defined. Each received space allocation request is then matched utilizing these parameters with the data, storage, and management classes for assignment to one of each of those classes to the unit of data related to the allocation request.
While this system represents a substantial advance in the automation of data storage system space allocation, a storage device may be selected for utilization without regard to multiple parameters which may be associated with data classes unless each such parameter is satisfied. Failing to satisfy one or more parameters associated with the data will result in the assignment of that data to a device within a storage group merely based upon the availability of space within that device.
In view of the above, it should be apparent that a need exists for a method and system which removes the burden of data storage system selection from the application programmer and storage administrator and which results in improved efficiency and data management. It would also be desirable to increase data storage system utilization by providing a system which permits all data storage systems to be candidates for space allocation for each new data set by adding a completely logical control wherein the best currently available data storage system may be selected based upon an associated set of data set preferences and/or requirements.